1. Field of the Invention
The present invention is generally directed to synchronization between clients and servers in a computing environment.
2. Background Art
FIG. 1 illustrates a computing environment 102 that includes a server 104 and a client 106 which communication via any known means, such as the Internet 110 (in practice, a plurality of servers 104 and clients 106 may operate in the computing environment 102). From time to time, client 106 synchronizes its state (data, applications, etc.) with server 104.
For example, according to the AVANTGO service (www.avantgo.com) available from iAnywhere Solutions, Inc., a Sybase company, client 106 receives content from one or more web sites 108 when it syncs with server 104. More particularly, server 104 retrieves data from web sites 108 corresponding to channels to which client 106 is subscribed. During a sync operation, server 104 transfers such data to client 106 via the Internet 110. (In an embodiment, as shown in the example of FIG. 1, server 104 and web sites 108 communicate with each other, and the client 106 and the server 104 communicate with each other, but the client 106 does not directly communicate with web sites 108. Instead, client 106 receives content from web sites 108 via server 104.)
In the past, sync operations usually took place when the client 106 was in a cradle connected to a computer via a wired connection, which was in turn connected to the Internet 110 via another wired connection.
Now, a multitude of well known client devices exist with functionality to wirelessly connect to the Internet. With such client devices, synchronizations can occur at any time.
Synchronization operations demand substantial computer and network resources, and often require a non-trivial amount of time to complete. A user's experience is diminished if a sync occurs while the user is trying to use the client device.
Also, by definition, synchronizations are performed to provide the user with up-to-date information when he is using the client device. The usefulness of a sync is diminished if the period between when the sync is performed, and when the user next uses the client device, is great.
Accordingly, what are needed are improved approaches for performing syncs between clients and servers.